Portable device for rendering a virtual object and a method thereof

ABSTRACT

A method ( 400 ) of rendering a virtual object on a portable device is disclosed. The method ( 400 ) comprises: accessing ( 402 ) a user schedule comprising scheduled locations of a user corresponding with scheduled moments in time, comparing ( 404 ) a current moment in time with the scheduled moments in time to select ( 406 ) a scheduled location corresponding with one of the scheduled moments in time that corresponds with the current moment in time, obtaining ( 408 ) a location of the portable device ( 100 ), and rendering ( 410 ) the virtual object on an image rendering device ( 102 ) of the portable device ( 100 ) only if the location of the portable device ( 100 ) corresponds with the selected scheduled location.

CROSS-REFERENCE TO PRIOR APPLICATIONS

This application is the U.S. National Phase application under 35 U.S.C.§ 371 of International Application No. PCT/EP2018/054271, filed on Feb.21, 2018, which claims the benefit of European Patent Application No.17158454.3, filed on Feb. 28, 2017. These applications are herebyincorporated by reference herein.

FIELD OF THE INVENTION

The invention relates to a method of rendering a virtual object on aportable device and to a computer program product for executing themethod. The invention further relates to a portable device for renderinga virtual object.

BACKGROUND

Recent developments in virtual reality (VR) and augmented reality (AR)enable a user to interact with virtual objects. These virtual objectsmay be displayed as an overlay on top of the physical world, for exampleon a smartphone or on AR-goggles. U.S. patent application 2013/0342564A1 discloses such a display apparatus for creating and displayingvirtual environments based on real world source environments. Thistechnology enables many different types of applications, for exampleposition-based treasure hunt games. When playing such a game, a user maymove through the physical world in order to ‘hunt’ (seek) virtualtreasures. Such games may be addictive, and may result in that usersneglect their daily commitments.

SUMMARY OF THE INVENTION

It is an object of the present invention to attract people to certainlocations.

According to a first aspect of the present invention, the object isachieved by a method of rendering a virtual object on a portable device,the method comprising:

-   -   accessing a user schedule comprising scheduled locations of a        user corresponding with scheduled moments in time,    -   comparing a current moment in time with the scheduled moments in        time to select a scheduled location corresponding with one of        the scheduled moments in time that corresponds with the current        moment in time,    -   obtaining a location of the portable device, and    -   rendering the virtual object on an image rendering device of the        portable device only if the location of the portable device        corresponds with the selected scheduled location.

The virtual object is only rendered when the user is at a location thatcorresponds with a scheduled location of the user schedule of that user.Thus, when a user is present at a location that does not match his orher user schedule, the virtual object will not be rendered. This resultsin that a user is required to be at the scheduled location in order tosee the virtual object, thereby attracting the user to the scheduledlocation. For instance, a child may be playing an AR treasure hunt game.The user schedule of the child may comprise a scheduled location (e.g.the bedroom) associated with a scheduled time (e.g. 08:00 PM). When itis time to go bed (08:00 PM), a virtual object (e.g. a virtualcharacter) may no longer be rendered when the portable device (andtherewith the child) is located in the living room. Thus, in order tosee the virtual object, the child will have to move the portable deviceto the scheduled location (the bedroom). This attracts the child to thebedroom. In another example, an employee may want to access virtualcontent in an office. The user schedule of the user may comprise ascheduled location (e.g. a meeting room) associated with a scheduledtime (e.g. 10:00 AM). The virtual object (e.g. a virtual presentation, avideo, a document, etc.) may only be rendered when the portable device(and therewith the employee) is located in the meeting room. Thus, inorder to see the virtual object, the employee will have to move theportable device to the scheduled location (the meeting room). Thisattracts the employee to the meeting room.

In embodiments, the virtual object is rendered on the image renderingdevice as an overlay on a physical environment wherein the portabledevice is located. The image rendering device may for example be adisplay, and the portable device may comprise an image capturing deviceconfigured to capture images. The method may further comprise the stepsof rendering the images captured by the image capture device on thedisplay, and rendering the virtual object on the display as an overlayon the images. Alternatively, the portable device may be a pair of smartglasses, and the image rendering device may be a projector configured toproject the virtual object on at least one of the glasses of the pair ofsmart glasses as an overlay on a physical environment wherein theportable device is located. The method may further comprise projectingthe virtual object on at least one of the glasses of the pair of smartglasses as an overlay on the physical environment wherein the portabledevice is located. It should be noted that these techniques of renderingvirtual objects as an overlay on the physical environment are mereexamples, and that the skilled person will be able to designalternatives without departing from the scope of the appended claims.

In embodiments, the method further comprises comparing a future momentin time with the scheduled moments in time to select a future scheduledlocation corresponding with one of the scheduled moments in time thatcorresponds with the future moment in time. Additionally, the method mayfurther comprise providing a notification by the portable deviceindicative of that the future moment in time is approaching and/or thatthe virtual object will be rendered on the portable device at the futurescheduled location. The notification (e.g. an indicator rendered on theimage rendering device, a vibration of the portable device, turning onan indicator LED, an audio signal, etc.) notifies the user that thefuture moment in time is approaching and/or that the virtual object willbe rendered on the portable device at the future scheduled location.This is beneficial, because it informs the user when/where the virtualobject will be available. Additionally or alternatively, the method mayfurther comprise changing a light output of a lighting device located inproximity of the future scheduled location to indicate that the virtualobject will be rendered on the portable device at the future scheduledlocation. Changing the light output of a lighting device (e.g. blinking,changing the color of the light, etc.) located nearby the futurescheduled location is beneficial because it informs the user where thevirtual object will be available.

In embodiments, the method may further comprise:

-   -   receiving a mapping of a virtual environment on the physical        environment wherein locations in the virtual environment        correspond to locations in the physical environment,    -   rendering the virtual object on the image rendering device at a        first virtual location in the virtual environment corresponding        to a first physical location in the physical environment, and    -   setting the virtual object to a movement state, wherein the        virtual object moves from the first virtual location to a second        virtual location in the virtual environment corresponding to a        second physical location in the physical environment, wherein        the first physical location is the scheduled location        corresponding with the current moment in time, and wherein the        second physical location is the future scheduled location        corresponding with the future moment in time. This provides the        advantage that the user is able to see in which direction/to        which future location the virtual object is moving. The virtual        object may be set to the movement state between the current        moment in time and the future moment in time. Alternatively, the        virtual object may be set to the movement state at the future        moment in time.

In embodiments, the method further comprises detecting a presence of aphysical object located within a predetermined proximity of the portabledevice, wherein the rendering of the virtual object occurs only when thephysical object is present. The physical object may, for example, be atoy, and the virtual object (e.g. a virtual character) may only berendered if the presence of the toy is detected within a predeterminedproximity of the portable device. Additionally, the method may comprisethe step of determining a location of the virtual object on the imagerendering device based on a location of the physical object. The virtualobject may, for example be rendered in close proximity of the physicalobject. This may for example be advantageous if the virtual objectprovides information about the physical object. Alternatively, thevirtual object may be rendered as an overlay on top of the physicalobject. This may be beneficial, because it may change the appearance ofthe physical object as seen by a user on the image rendering device ofthe portable device.

In embodiments, the method further comprises:

-   -   obtaining a plurality of locations of the portable device over a        period of time, each user location corresponding with a moment        in time, and at least one of:    -   generating the user schedule based on the plurality of user        locations and the corresponding moments in time and storing the        user schedule in the memory, and    -   determining a future location corresponding with a future moment        in time by extrapolating the plurality of user locations and the        corresponding moments in time. This enables creation of the user        schedule based on previous movement/presence patterns of the        user. Additionally or alternatively, this enables prediction of        where and when the user will likely be located in the future.

According to a second aspect of the present invention, the object isachieved by a computer program product for a computing device, thecomputer program product comprising computer program code to perform anyone of the above-mentioned methods when the computer program product isrun on a processing unit of the computing device.

According to a third aspect of the present invention, the object isachieved by a portable device for rendering a virtual object, theportable device comprising:

-   -   an image rendering device configured to render virtual objects,    -   a processor configured to access a memory storing a user        schedule comprising scheduled locations of a user corresponding        with scheduled moments in time, and to compare a current moment        in time with the scheduled moments in time to select a scheduled        location corresponding with one of the scheduled moments in time        that corresponds with the current moment in time, and to obtain        a location of the portable device, and to render the virtual        object on the image rendering device only if the location of the        portable device corresponds with the selected scheduled        location.

In embodiments, the image rendering device is a display, and theportable device further comprises an image capturing device configuredto capture images, and the processor is further configured to render theimages captured by the image capture device on the display, and torender the virtual object on the display as an overlay on the images.Alternatively, the portable device is a pair of smart glasses, and theimage rendering device is a projector configured to project the virtualobject on at least one of the glasses of the pair of smart glasses as anoverlay on a physical environment wherein the portable device islocated.

In embodiments, the portable device further comprises a locationdetector configured to detect the location of the portable device.Additionally, the location detector may be configured to determine thelocation of the portable device based on one or more location signalsreceived from a positioning system. The location signals may, forexample, comprise the exact location of the portable device asdetermined by the positioning system. Alternatively, the locationsignals may be sent by (indoor) positioning beacons, such as radiofrequency (RF) beacons, and the location detector may be configured todetermine the location of the portable device based on for example thesignal strength of the location signals.

It should be understood that the claimed portable device may havesimilar and/or identical embodiments and advantages as the claimedmethod.

BRIEF DESCRIPTION OF THE DRAWINGS

The above, as well as additional objects, features and advantages of thedisclosed portable devices, systems and methods will be betterunderstood through the following illustrative and non-limiting detaileddescription of embodiments of devices and methods, with reference to theappended drawings, in which:

FIG. 1 shows schematically an embodiment of a portable device forrendering a virtual object;

FIGS. 2a and 2b show schematically embodiments of portable device forrendering virtual objects;

FIG. 3 shows schematically an embodiment of a portable device forrendering a virtual object that moves from a first location to a secondlocation; and

FIG. 4 shows schematically steps of a method of rendering a virtualobject on a portable device.

All the figures are schematic, not necessarily to scale, and generallyonly show parts which are necessary in order to elucidate the invention,wherein other parts may be omitted or merely suggested.

DETAILED DESCRIPTION OF EMBODIMENTS

FIG. 1 shows schematically an embodiment of a portable device 100 forrendering a virtual object. The portable device 100 comprises an imagerendering device 102 configured to render virtual objects. The portabledevice 100 further comprises a processor 104 configured to access amemory storing a user schedule comprising scheduled locations of a usercorresponding with scheduled moments in time. The processor 104 isfurther configured to compare a current moment in time with thescheduled moments in time to select a scheduled location correspondingwith one of the scheduled moments in time that corresponds with thecurrent moment in time. The processor 104 is further configured toobtain a location of the portable device 100, and to render the virtualobject on the image rendering device 102 only if the location of theportable device 100 corresponds with the selected scheduled location.

The portable device 100 may be any type of portable device suitable tobe taken along with the user and comprising an image rendering device102. The portable device 100 may, for example, be a smartphone, a tabletpc, a laptop pc, etc. The portable device 100 may be a wearable devicesuch as a pair of smart glasses, AR glasses, VR glasses, a smart watch,etc. The image rendering device 102 may be any type of means forrendering virtual objects such as images. The image rendering device 102may, for example, be a display or a projector.

The processor 104 of the portable device 100 is configured to access amemory storing a user schedule comprising scheduled locations of a usercorresponding with scheduled moments in time. The memory 106 may belocated in the portable device 104. Alternatively, the memory may belocated in a remote server 120, and the portable device 100 may furthercomprise a communication unit 110 configured to communicate with theremote server and access the memory in order to retrieve the userschedule. The user schedule may, for example, comprise a look-up tablecomprising associations between the scheduled locations and thescheduled moments in time. Table 1 illustrates an example of a lookuptable of a user.

TABLE 1 Time Location 06:00 PM-07:00 PM Dining room 08:00 PM-08:10 PMBathroom 08:10 PM-08:30 PM Bedroom

The processor 104 is further configured to compare a current moment intime with the scheduled moments in time to select a scheduled locationcorresponding with one of the scheduled moments in time that correspondswith the current moment in time. For example, when referring to Table 1,if the current moment in time is 08:05 PM, the processor 104 may selectthe “Bathroom” location, because this location corresponds with thescheduled moment in time “08:00 PM 08:10 PM”.

The processor 104 is further configured to obtain a location (e.g. a setof coordinates, an indicator indicating a room, etc.) of the portabledevice 100. The location of the portable device 100 and the scheduledlocations may, for example, be indicated as a GPS location (e.g. a setof coordinates), an (indoor) locations relative to an area (e.g.coordinates in a room), an area within a space (e.g. sets of coordinatesdefining an area inside a room), room descriptors, etc. The processor104 may, for example, comprise a location detector 108 configured todetect the location of the portable device 100. The location detector108 may receive location signals from a positioning system. An exampleof such a positioning system is an (indoor) positioning system that usesa plurality of radio frequency (RF) beacons distributed throughout thespace that may communicate with the location detector 108 in theportable device 100. The location detector 108 may for example be an RFtransceiver/receiver arranged for transmitting and/or receiving RFsignals to/from the beacons. The location of the portable device 100relative to the location of the beacons may be calculated by usingtriangulation or trilateration based on for example the time-of-flight(TOF) of the RF signals received from the beacons, or based on thereceived signal strength of the RF signals received from the beacons.Additionally or alternatively, the location detector 108 may comprise alight sensor for detecting a coded light signal emitted by a lightsource of a luminaire. This at least one coded light signal may comprise(a link to) location information about the luminaire, thereby enablingthe location detector 108 to determine its location. The code in thecoded light may be created by any known principle of embedding a code inlight, for example by controlling a time-varying, modulated current tothe one or more light sources to produce variations in the light output,by modulating the amplitude and/or the duty-cycle of the light pulses,etc. The location may be determined in further detail based on acharacteristic of the received coded light signal (e.g. based on thelight intensity of the light, the signal/noise ratio of the signal, theangle of incidence of the light, etc.). It should be noted that theabove-mentioned techniques for determining the location of the portabledevice 100 are merely examples, and that the skilled person will be ableto design many alternatives without departing from the scope of theappended claims.

The processor 104 is further configured to render the virtual object onthe image rendering device 102 only if the location of the portabledevice 100 corresponds with the selected scheduled location. Forexample, when referring again to Table 1, the processor 104 maydetermine that the portable device 100, and therewith the user, islocated in the bathroom at 08:05 PM, and therefore determine to renderthe virtual object on the image rendering device 102 of the portabledevice 100.

The virtual object may be any type of virtual object. Examples ofvirtual object include but are not limited to inanimate objects such asvirtual furniture, buildings and plants, animate objects such as (game)characters and animals, data files such as presentations and documents,signage, etc.

The processor 104 may be configured to render the virtual object as anoverlay on top of the physical environment. As illustrated in FIG. 2a ,the image rendering device 202 a may be a display. The portable device200 a may further comprise an image capturing device (e.g. a camera)configured to capture images. The image capture device may captureimages of the physical environment 210 a. The processor (not shown inFIG. 2a ) may be further configured to render the images captured by theimage capture device on the display 202 a, and to render the virtualobject 208 a on the display 202 a as an overlay on the images. Asillustrated in in FIG. 2b , the portable device 200 b may be a pair ofsmart glasses. The image rendering device 202 b may be a display. Theportable device 200 b may further comprise an image capturing device(e.g. a camera) configured to capture images. The image capture devicemay capture images of the physical environment 210 b. The processor (notshown in FIG. 2b ) may be further configured to render the imagescaptured by the image capture device on the display 202 b, and to renderthe virtual object 208 b on the display as an overlay on the images.Alternatively, the image rendering device 202 b may be a projectorconfigured to project the virtual object 208 b on at least one of theglasses of the pair of smart glasses as an overlay on the physicalenvironment 210 b. Alternatively, image rendering device 202 b may be aprojector configured to project the virtual object 208 b directly on theretina of the user wearing the pair of smart glasses as an overlay onthe physical environment 210 b.

The processor 104 may be further configured to compare a future momentin time with the scheduled moments in time to select a future scheduledlocation corresponding with one of the scheduled moments in time thatcorresponds with the future moment in time. For example, when referringagain to Table 1, the current moment in time may be 08:05 PM. Theprocessor 104 may compare a future moment in time, e.g. 08:10 PM, withthe scheduled moments in time of Table 1, and select a future scheduledlocation, which in this example would be the “Bedroom” location, becausethis location corresponds with the scheduled moment in time “08:10 PM08:30 PM” and therewith with the future moment in time 08:10 PM.

The processor 104 may be further configured to provide a notificationvia the portable device 100 indicative of that the future moment in timeis approaching and/or that the virtual object will be rendered on theportable device 100 at the future scheduled location. The notification(e.g. an indicator rendered on the image rendering device 102, avibration actuated by a vibrator of the portable device 100, turning onan indicator LED on the portable device 100, an audio signal produced bya speaker of the portable device 100, etc.) may notify the user that thefuture moment in time is approaching and/or that the virtual object willbe rendered on the portable device 100 at the future scheduled location.

The processor 104 may be further configured to receive locationinformation (e.g. a set of coordinates of the location of the lightingdevice 108) indicative of a location of one or more lighting devices.The processor 104 may be further configured to compare the futurescheduled location with the locations of the one or more lightingdevices, and, if a lighting device is located within a predeterminedproximity (e.g. within a predefined range) of the future scheduledlocation, the processor may change the light output of that lightingdevice. Additionally or alternatively, the processor 104 may be furtherconfigured to compare the current scheduled location with the locationsof the one or more lighting devices, and, if a lighting device islocated within a predetermined proximity (e.g. within a predefinedrange) of the current scheduled location, the processor 104 may changethe light output of that lighting device. The processor 104 may beconfigured to generate a lighting control command, and the portabledevice may further comprise a communication unit configured tocommunicate the lighting control command to the lighting device in orderto change the light output of the lighting device. The lighting controlcommand may comprise control instructions for, for example, blinking thelight of the lighting device, changing the color of the lighting device(e.g. from white light to red light), etc. This is beneficial, becauseit enables a user to see where he or she has to take the portable device100 in order to see the virtual object on the image rendering device102.

Additionally, the processor 104 may be configured to control thelighting device such that it emits light comprising an embedded code.The code may be created by any known principle of embedding a code inlight, for example by controlling a time-varying, modulated current tothe one or more light sources to produce variations in the light output,by modulating the amplitude and/or the duty-cycle of the light pulses,etc. The processor 104 of the portable device 100 may be furtherconfigured to (only) render the virtual object if the code has beendetected. The code may, for example, be detected by a light detectorsuch as a camera or a photodiode. As a result, a user may see thevirtual object only if the portable device has received the code fromthe lighting device.

The processor 104 may be further configured to receive a mapping of avirtual environment on the physical environment wherein locations in thevirtual environment correspond to locations in the physical environment.The processor 104 may receive this mapping from a further device, suchas a remote server. Additionally or alternatively, the processor 104 maybe further configured to generate the mapping, for example based onimages received from an image capturing device (such as a camera, a 3Dcamera, etc.) and/or based on building information (e.g. a 2D/3Dbuilding layout). The processor 104 may apply image processingalgorithms to determine locations of objects and the layout of thephysical environment (which may, for example, be based on depthinformation received from a 3D camera/scanner) in order to generate themapping of the virtual environment on the physical environment. Themapping may, for example, be a mapping of virtual coordinates ontophysical coordinates in a 3D space.

FIG. 3 illustrates an embodiment wherein the virtual world has beenmapped onto the physical world. FIG. 3 shows a portable device 300comprising an image rendering device 302 (a display). The portabledevice 300 may further comprise an image capturing device (e.g. a(depth) camera) configured for capturing images of the physicalenvironment 304. The processor (not shown) of the portable device 300may be configured to receive a mapping of the virtual world on thephysical world. Additionally or alternatively, the processor may befurther configured to generate the mapping, for example based on imagesreceived from the image capturing device. The processor 104 may applyimage processing algorithms to determine locations of objects 330, 332and the layout of the physical environment 304 (which may, for example,be based on depth information received from a 3D depth camera) in orderto generate the mapping of the virtual environment on the physicalenvironment.

The virtual object 312 (in this example a virtual character) may have avirtual location 310 that corresponds with a physical location 310. Thevirtual object may be rendered on the display 302 when the user pointshis portable device 300 towards the physical location 310 of the virtualobject 312. The virtual object 312 may be rendered as an overlay on topof the physical environment 304 using various known augmented reality(AR) (or virtual reality (VR)) techniques. The virtual location 310 (andtherewith the physical location 310) of the virtual object may bedetermined by a computer program running on a (remote) computing device(e.g. a game server, an AR-content server, etc.). The physical location310 of the virtual object may, for example, be a GPS location (e.g. aset of coordinates), an (indoor) location relative to an area (e.g.coordinates in a room), etc. The physical locations 310 of one or morevirtual objects may be stored in a memory accessible by the processor.

The processor may be further configured to render the virtual object 312on the image rendering device 302 at a first virtual location 310 in thevirtual environment corresponding to a first physical location 310 inthe physical environment 304, and to set the virtual object 312, 312′,312″ to a movement state, wherein the virtual object 312, 312′, 312″moves from the first virtual location 310 to a second virtual location320 in the virtual environment corresponding to a second physicallocation 320 in the physical environment 340. The first physicallocation 310 may be the scheduled location corresponding with thecurrent moment in time, and the second physical location 320 may be thefuture scheduled location corresponding with the future moment in time.The processor may set the virtual object 312, 312′, 312″ to the movementstate between the current moment in time and the future moment in time.Thus, at the current moment in time (e.g. 09:58 AM), the processor mayrender the virtual object 312 stationary at the first virtual location310 (and therewith at the first physical location 310). The processormay access the user schedule and determine that a future moment in timeis approaching (e.g. 10:00 AM), the future moment in time correspondingto a future scheduled location (in this example the second physicallocation 320). The processor may be configured to calculate a path 314for the virtual object 312, 312′, 312″ from the first virtual location310 (and therewith at the first physical location 310) to the secondvirtual location 310 (and therewith at the second physical location310). Subsequently, the processor may render a movement of the virtualobject 312, 312′, 312″ from the first virtual location 310 to the secondvirtual location 310 during the time in between the current moment intime (09:58 AM) and the future moment in time (10:00 AM). This enables auser to see where the virtual object will be accessible (i.e. where itwill be rendered). The processor may be further configured to controlthe light output of lighting device 332, which has a locationcorresponding to the second physical location 320, to indicate that thevirtual object 312, 312′, 312″ is/will be present at that location.

The processor 104 may be further configured to detect a presence of aphysical object located within a predetermined proximity of the portabledevice 100, and to render the virtual object only when the physicalobject is present. Examples of physical objects include but are notlimited to toys, furniture, people, animals, plants and (building)infrastructure. The processor may, for example, detect the presence ofthe physical object by analyzing images captured by an image capturingdevice (e.g. a camera) and detect the physical object in the images.Additionally or alternatively, the portable device may comprise adetection means for detecting (and identifying) the object. Examples ofsuch detection include but are not limited to detection of QR-codes,detection of radio frequency (RF) signals emitted by the physicalobject, coded light emitted by a light source of the physical object,etc. Additionally, the processor 104 may be configured to render thevirtual object on the image rendering device 102 such that the virtualobject has a location relative to the physical object. The processor 104may, for example, identify a physical object in an image captured by animage capturing device and determine a location of the virtual object inthe image based on the location of the physical object in the image.Alternatively, the processor 104 may determine a virtual location forthe virtual object that corresponds with a physical location of thephysical object. The processor may then render the image on a displayand render the virtual object at the location relative to the physicalobject as an overlay on the image.

The processor 104 may be further configured to obtain a plurality oflocations of the portable device over a period of time, each locationcorresponding with a moment in time. The plurality of locations may bedetected by the location detector 108. The processor 104 may store theplurality of locations together with the corresponding moments in timein a memory. The processor 104 may be further configured to generate auser schedule based on the plurality of user locations and thecorresponding moments in time, and store the generated user schedule inthe memory 106, 120. The processor 104 may be configured to detectrepetitive user patterns (the user patterns being indicative of themovement of the user between locations at moments in time), and generatethe user schedule based on (an average of) these patterns. Additionallyor alternatively, the processor 104 may be configured to determine afuture location corresponding with a future moment in time byextrapolating the plurality of user locations and the correspondingmoments in time. The processor 104 may be configured to detectrepetitive user patterns and use past user patterns to predict futureuser patterns, and therewith the future location corresponding with thefuture moment in time. The processor 104 may further select a futurelocation of the user based on this prediction, and render the virtualobject on the image rendering device 102 of the portable device 100 onlyif the location of the portable device 100 corresponds with the futurelocation. Additionally, the processor 104 may be configured tocontinuously monitor relocation of the portable device (and therewithmovement of the user), and predict a next location where the portabledevice 100/user will likely go to based on the movement of the user andbased on the detected user patterns. This enables the processor 104 topredict a location where a user will go to, and to select the predictedlocation and render the virtual object on the image rendering device 102of the portable device 100 only if the location of the portable device100 corresponds with the predicted location.

FIG. 4 shows schematically a method 400 according to the invention forrendering a virtual object on a portable device 100. The method 400comprises accessing 402 a user schedule comprising scheduled locationsof a user corresponding with scheduled moments in time. The method 400further comprises comparing 404 a current moment in time with thescheduled moments in time to select 406 a scheduled locationcorresponding with one of the scheduled moments in time that correspondswith the current moment in time. The method 400 further comprisesobtaining 408 a location of the portable device 100. The method 400further comprises rendering 410 the virtual object on an image renderingdevice 102 of the portable device 100 only if the location of theportable device 100 corresponds with the selected scheduled location.

The method 400 may be executed by computer program code of a computerprogram product when the computer program product is run on a processingunit of a computing device, such as the processor 104 of the portabledevice 100.

It should be noted that the above-mentioned embodiments illustraterather than limit the invention, and that those skilled in the art willbe able to design many alternative embodiments without departing fromthe scope of the appended claims.

In the claims, any reference signs placed between parentheses shall notbe construed as limiting the claim. Use of the verb “comprise” and itsconjugations does not exclude the presence of elements or steps otherthan those stated in a claim. The article “a” or “an” preceding anelement does not exclude the presence of a plurality of such elements.The invention may be implemented by means of hardware comprising severaldistinct elements, and by means of a suitably programmed computer orprocessing unit. In the device claim enumerating several means, severalof these means may be embodied by one and the same item of hardware. Themere fact that certain measures are recited in mutually differentdependent claims does not indicate that a combination of these measurescannot be used to advantage.

Aspects of the invention may be implemented in a computer programproduct, which may be a collection of computer program instructionsstored on a computer readable storage device which may be executed by acomputer. The instructions of the present invention may be in anyinterpretable or executable code mechanism, including but not limited toscripts, interpretable programs, dynamic link libraries (DLLs) or Javaclasses. The instructions can be provided as complete executableprograms, partial executable programs, as modifications to existingprograms (e.g. updates) or extensions for existing programs (e.g.plugins). Moreover, parts of the processing of the present invention maybe distributed over multiple computers or processors.

Storage media suitable for storing computer program instructions includeall forms of nonvolatile memory, including but not limited to EPROM,EEPROM and flash memory devices, magnetic disks such as the internal andexternal hard disk drives, removable disks and CD-ROM disks. Thecomputer program product may be distributed on such a storage medium, ormay be offered for download through HTTP, FTP, email or through a serverconnected to a network such as the Internet.

The invention claimed is:
 1. A method of rendering a virtual object on aportable device, the method comprising: accessing a user schedulecomprising scheduled locations of a user corresponding with scheduledmoments in time, comparing a current moment in time with the scheduledmoments in time to select a scheduled location corresponding with one ofthe scheduled moments in time that corresponds with the current momentin time, obtaining a location of the portable device, rendering thevirtual object on an image rendering device of the portable device as anoverlay on a physical environment wherein the portable device islocated, only if the location of the portable device corresponds withthe selected scheduled location, comparing a future moment in time withthe scheduled moments in time to select a future scheduled locationcorresponding with one of the scheduled moments in time that correspondswith the future moment in time, and changing a light output of alighting device located in proximity of the future scheduled location toindicate that the virtual object will be rendered on the portable deviceat the future scheduled location, wherein the light output is changed bycommunicating a lighting control command to the lighting device.
 2. Themethod of claim 1, further comprising providing a notification by theportable device indicative of that the future moment in time isapproaching and/or that the virtual object will be rendered on theportable device at the future scheduled location.
 3. The method of claim1, further comprising: receiving a mapping of a virtual environment onthe physical environment wherein locations in the virtual environmentcorrespond to locations in the physical environment, rendering thevirtual object on the image rendering device at a first virtual locationin the virtual environment corresponding to a first physical location inthe physical environment, and setting the virtual object to a movementstate, wherein the virtual object moves from the first virtual locationto a second virtual location in the virtual environment corresponding toa second physical location in the physical environment, wherein thefirst physical location is the scheduled location corresponding with thecurrent moment in time, and wherein the second physical location is thefuture scheduled location corresponding with the future moment in time.4. The method of claim 3, wherein the virtual object is set to themovement state between the current moment in time and the future momentin time.
 5. The method of claim 1, further comprising detecting apresence of a physical object located within a predetermined proximityof the portable device wherein the rendering of the virtual objectoccurs only when the physical object is present.
 6. The method of claim5, wherein the virtual object is rendered on the image rendering devicehaving a location relative to the physical object.
 7. The method ofclaim 1, further comprising: obtaining a plurality of locations of theportable device over a period of time, each location corresponding witha moment in time, and at least one of: generating the user schedulebased on the plurality of user locations and the corresponding momentsin time and storing the user schedule in the memory, and determining afuture location corresponding with a future moment in time byextrapolating the plurality of user locations and the correspondingmoments in time.
 8. A computer program product for a computing device,the computer program product comprising computer program code to performthe method of claim 1 when the computer program product is run on aprocessing unit of the computing device.
 9. A portable device forrendering a virtual object, the portable device comprising: an imagerendering device configured to render virtual objects, a processorconfigured to access a memory storing a user schedule comprisingscheduled locations of a user corresponding with scheduled moments intime, and to compare a current moment in time with the scheduled momentsin time to select a scheduled location corresponding with one of thescheduled moments in time that corresponds with the current moment intime, and to obtain a location of the portable device, and to render thevirtual object on the image rendering device as an overlay on a physicalenvironment wherein the portable device is located, only if the locationof the portable device corresponds with the selected scheduled location,and to compare a future moment in time with the scheduled moments intime to select a future scheduled location corresponding with one of thescheduled moments in time that corresponds with the future moment intime, and to change a light output of a lighting device located inproximity of the future scheduled location to indicate that the virtualobject will be rendered on the portable device at the future scheduledlocation, wherein the light output is changed by communicating alighting control command to the lighting device.
 10. The portable deviceof claim 9, wherein the image rendering device is a display, and whereinthe portable device further comprises an image capturing deviceconfigured to capture images, and wherein the processor is furtherconfigured to render the images captured by the image capture device onthe display, and to render the virtual object on the display as anoverlay on the images.
 11. The portable device of claim 9, wherein theportable device is a pair of smart glasses, and wherein the imagerendering device is a projector configured to project the virtual objecton at least one of the glasses of the pair of smart glasses as anoverlay on a physical environment wherein the portable device islocated.
 12. The portable device of claim 9 wherein the portable devicefurther comprises a location detector configured to detect the locationof the portable device.